package com.yunhe.authority.service.authority;

import com.yunhe.authority.domain.authority.FirmStaticData;
import com.yunhe.common.exception.ObjectNotFoundException;
import org.springframework.transaction.annotation.Transactional;

/**
 * @ClassName FirmStaticDataService
 * @Description 单位静态数据服务类定义
 * @Author HeTao
 * @Date 2020/11/2 11:31
 * @Version 1.0
 **/
public interface FirmStaticDataService {

    @Transactional(rollbackFor = Exception.class, transactionManager = "transactionManager")
    FirmStaticData createFirmStaticData(FirmStaticData firmStaticData, Long firmId) throws ObjectNotFoundException;

    @Transactional(rollbackFor = Exception.class, transactionManager = "transactionManager")
    FirmStaticData updateFirmStaticData(FirmStaticData firmStaticData, Long firmId) throws ObjectNotFoundException;

    @Transactional(rollbackFor = Exception.class, transactionManager = "transactionManager")
    FirmStaticData updateFirmStaticData(Long id, Long firmId, Double area, Double taxes, Long ssCompNum, Long intendSsCompNum
            , Long electromechanicalCompNum, Long packingCompNum, Long materialsCompNum, Long automotiveCompNum
            , Long foodCompNum, Long otherCompNum, Long industryNum, Long compNumStaffAbove0, Long compNumStaffAbove50
            , Long compNumStaffAbove100, Long compNumStaffAbove150, Long allCompNum, Long signedCompNum
            , Long investmentCompNum, Long interestSignCompNum, Double annualOutputValue, Long allOfficeNum
            , Long solvingEmployment, Long regulatoryEquipmentNum, Double alarmProcessingRate, Long monitoringEquipmentNum
            , Double equipmentIntactRate, Long inspectionsNum, Long mediumAlarmNum, Double mediumAlarmProcessingRate
            , Long heaviestAlarmNum, Double heaviestAlarmProcessingRate, Long legalFinancialServiceNum
            , Long warehousingLogisticsServiceNum, Long policyDeclarationServiceNum, Long sharedCommunityServiceNum
            , Long financeServiceNum, Long trainingServiceNum, Long otherServiceNum, String[] energyCompListMonth
            , String[] energyCompListYear, String[] annualOutputValueStationList, String[] compNumStationList
            , String[] solvingEmploymentStationList) throws ObjectNotFoundException;

    /**
     * 根据单位id查询单位静态数据
     * @param firmId
     * @return
     */
    FirmStaticData findByFirmId(Long firmId);
}
